Application programming interface for audio recommendation, discovery, and presentation within a social network

ABSTRACT

A system and method for providing an application programming interface for interfacing with audio files within a social networking service are provided. The method includes receiving, at the one or more computing devices, an ordered list of social networking contacts associated with a member of the social networking service. The ordered list of social networking contacts is arranged according to a ranking of the social networking contacts. The method also includes receiving a list of audio files associated with the member of the social networking service. The method also includes receiving a set of instructions. The set of instructions is configured to be implemented with the ordered list of social networking contacts and the list of audio files. The method also includes interfacing with the ordered list of social networking contacts or the list of audio files according to the set of instructions to modify the list of audio files.

BACKGROUND

The subject disclosure generally relates to social audio recommendationand discovery, and, in particular, to an application programminginterface for controlling the presentation of audio files within asocial network.

Audio files are inherently social instruments. Many social events, forexample, parties, dates, dinners, etc., are oftentimes coupled with abackground audio interface, e.g., a radio program. However, an audiofile interface is missing from many aspects of the Internet-based socialnetworking experience. As the foregoing illustrates, an approach toadding audio files to the social networking experience may be desirable.

Furthermore, selecting new audio files which a listener may enjoy isoften a difficult task. Presently, listeners either locate and selectprospective audio files themselves or receive direct verbal or writtenrecommendations from their social contacts. Locating and selectingprospective audio files by oneself requires much time and effort, anddirect verbal or written recommendations from social contacts are rare,as such recommendations may require thought, time, or effort by thesocial contacts. As the foregoing illustrates, an approach toautomatically recommending new audio files to a listener may bedesirable.

SUMMARY

The disclosed subject matter relates to a method executed on one or morecomputing devices for providing an application programming interface forinterfacing with audio files within a social networking service. Themethod includes receiving, at the one or more computing devices, anordered list of social networking contacts associated with a member ofthe social networking service. The ordered list of social networkingcontacts is arranged according to a ranking of the social networkingcontacts. The method also includes receiving a list of audio filesassociated with the member of the social networking service. The methodalso includes receiving a set of instructions. The set of instructionsis configured to be implemented with the ordered list of socialnetworking contacts and the list of audio files. The method alsoincludes interfacing with the ordered list of social networking contactsor the list of audio files according to the set of instructions tomodify the list of audio files.

The disclosed subject matter also relates to a machine-readable mediumfor providing an application programming interface for interfacing withaudio files within a social networking service. The machine-readablemedium includes instructions stored therein, which when executed by oneor more computing devices, cause the one or more computing devices toperform operations. The operations include receiving a list of socialnetworking contacts associated with a member of the social networkingservice. The operations also include receiving an ordered list of audiofiles associated with the member of the social networking service. Theordered list of social networking contacts is arranged according to aranking of the audio files associated with the member. The operationsalso include receiving a set of instructions. The set of instructions isconfigured to be implemented with the list of social networking contactsand the ordered list of audio files. The operations also includeinterfacing with the list of social networking contacts or the orderedlist of audio files according to the set of instructions to modify thelist of audio files.

The disclosed subject matter also relates to a system for providing anapplication programming interface for interfacing with audio fileswithin a social networking service. The system includes one or moreprocessors. The system also includes a memory including instructionsstored therein, which when executed by the one or more processors, causethe one or more processors to perform operations. The operations includereceiving a list of social networking contacts associated with a memberof the social networking service. The operations also include receivinga list of audio files associated with the member of the socialnetworking service. The operations also include receiving a set ofinstructions. The set of instructions is configured to be implementedwith the list of social networking contacts and the list of audio files.The operations also include interfacing with the list of socialnetworking contacts or the list of audio files according to the set ofinstructions to modify the list of audio files.

The disclosed subject matter also relates to a method executed on one ormore computing devices for recommending audio files to a member of asocial network. The method includes receiving, at the one or morecomputing devices, a representation of a first set of audio filesassociated with the member. The method also includes receiving arepresentation of a set of social networking contacts associated withthe member. The method also includes receiving a representation of oneor more second sets of audio files. Each second set of audio files isassociated with at least one social networking contact in the set ofsocial networking contacts associated with the member. The method alsoincludes determining, using the one or more computing devices, a firstset of characteristics based on the representation of the first set ofaudio files. The method also includes determining, using the one or morecomputing devices, a second set of characteristics based on therepresentation of the one or more second sets of audio files. The methodalso includes generating a recommendation for at least one new audiofile based on the first set of characteristics and the second set ofcharacteristics. The at least one new audio file is not in the first setof audio files. The method also includes providing an indication of therecommendation for the at least one new audio file.

The disclosed subject matter also relates to a machine-readable mediumfor providing an application programming interface for recommendingaudio files to a member of a social network. The machine-readable mediumincludes instructions stored therein, which when executed by one or morecomputing devices, cause the one or more computing devices to performoperations. The operations include receiving a representation of a firstset of audio files associated with the member. The operations alsoinclude receiving a representation of a set of social networkingcontacts associated with the member. The operations also includereceiving a representation of one or more second sets of audio files.Each second set of audio files is associated with at least one socialnetworking contact in the set of social networking contacts associatedwith the member. The operations also include determining a first set ofcharacteristics based on the representation of the first set of audiofiles. The operations also include determining a second set ofcharacteristics based on the representation of the one or more secondsets of audio files. The operations also include generating arecommendation for at least one new audio file based on the first set ofcharacteristics and the second set of characteristics. The at least onenew audio file is not in the first set of audio files. The at least onenew audio file is not in the one or more second sets of audio files.

The disclosed subject matter also relates to a system for recommendingaudio files to a member of a social network. The system includes one ormore processors. The system also includes a memory includinginstructions stored therein, which when executed by the one or moreprocessors, cause the one or more processors to perform operations. Theoperations include receiving a representation of a first set of audiofiles associated with the member. The operations also include receivinga representation of an ordered list of social networking contactsassociated with the member. The operations also include receiving arepresentation of one or more second sets of audio files. Each secondset of audio files is associated with a social networking contact in theordered list of social networking contacts associated with the member.The ordered list of social networking contacts is arranged according toa ranking of the social networking contacts. The operations also includedetermining a first set of characteristics based on the representationof the first set of audio files. The operations also include determiningone or more second sets of characteristics based on the representationof the one or more second sets of audio files. The operations alsoinclude associating at least a portion of characteristics in the one ormore seconds set of characteristics with a likelihood-of-interest. Thelikelihood-of-interest is based on a position of the associated socialnetworking contact in the ordered list of social networking contacts.The operations also include generating a recommendation for at least onenew audio file based on the first set of characteristics, the one ormore second sets of characteristics, and the likelihood-of-interestassociated with characteristics in the one or more second sets ofcharacteristics. The at least one new audio file is not in the first setof audio files.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of thesubject technology are set forth in the following figures.

FIG. 1 illustrates an example of a computer system configured to providean application programming interface for interfacing with audio fileswithin a social network.

FIG. 2 illustrates an example process by which an applicationprogramming interface for interfacing with audio files within a socialnetwork may be provided.

FIG. 3 illustrates an example process by which a new audio file may berecommended to a member of a social network.

FIG. 4 conceptually illustrates an example electronic system with whichsome implementations of the subject technology are implemented.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be clear and apparent tothose skilled in the art that the subject technology is not limited tothe specific details set forth herein and may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology.

I. Overview

The subject disclosure relates to techniques for providing anapplication programming interface for interfacing with audio fileswithin a social networking service. A server may receive an ordered listof social networking contacts associated with a member of the socialnetworking service. The ordered list of social networking contactsassociated with the member may include the social circles of the member.The ordered list of social networking contacts may be arranged accordingto a ranking of the social networking contacts. The ranking of thesocial networking contacts may be based on closeness to the member orcloseness in taste in audio files to the taste in audio files of themember. The server may receive a list of audio files associated with themember of the social networking service. The server may receive a set ofinstructions. The set of instructions may be written in a programminglanguage, e.g., JavaScript. The set of instructions may be configured tobe implemented with the ordered list of social networking contacts andthe list of audio files. The set of instructions may includeinstructions for interfacing with the ordered list of social networkingcontacts or the list of audio files according to the set of instructionsto modify the list of audio files or the list of social networkingcontacts, or to provide data associated with the list of audio files orthe ordered list of social networking contacts.

The subject disclosure also relates to techniques for recommending audiofiles to a member of a social network. In one example, the set ofinstructions may include instructions for recommending audio files tothe member of a social network. The server may receive a representationof a first set of audio files associated with the member. The server mayalso receive a representation of a set of social networking contactsassociated with the member, e.g., a representation of the social circlesof the member. The server may also receive a representation of one ormore second sets of audio files. Each second set of audio files mayassociated with at least one social networking contact in the set ofsocial networking contacts associated with the member. The server maydetermine a first set of characteristics based on the representation ofthe first set of audio files. The first set of characteristics mayinclude characteristics of the audio files (e.g., topics discussed inthe audio files) or personal characteristics of the speakers in theaudio files (e.g., age range, gender, profession, language, politicalviews, religion, accent, etc.). The server may also determine a secondset of characteristics based on the representation of the one or moresecond sets of audio files. The server may generate a recommendation forat least one new audio file based on the first set of characteristicsand the second set of characteristics. The at least one new audio filemay not be in the first set of audio files. The server may provide anindication of the recommendation for the at least one new audio file.

The phrase “computing device” as used herein encompasses its plain andordinary meaning, including, but not limited to any device including oneor more processors and a memory. The one or more processors may beconfigured to access data stored in the memory or to executeinstructions stored in the memory. The memory may include a physicalmemory or a virtual memory. Example computing devices include a server,a client device, a laptop computer, a desktop computer, a tabletcomputer, a mobile phone, a television including one or more processorsand a memory embedded therein or coupled thereto, a physical machine, ora virtual machine.

The phrase “application programming interface” as used hereinencompasses its plain and ordinary meaning, including, but not limitedto any a source code based specification intended to be used as aninterface by software components to communicate with each other. Anapplication programming interface may, among other things, access datastored on a server and process the data, manipulate the data, modify thedata, or provide an output based on the data.

The phrase “audio file” as used herein encompasses its plain andordinary meaning, including, but not limited to a file including soundinformation. Audio files may include, for example, recordings oflectures, recordings of meetings, recordings of speeches, or podcasts.Audio files may be represented as, for example, MP3 files, WMA files, orWAV files.

Users or members of social networks or social networking services maycreate associations with one another. The phrase “social networkingservice” as used herein encompasses its plain and ordinary meaning,including, but not limited to, an online service, platform or site thatfocuses on building and reflecting of social associations andinteractions among users. These associations may be stored within asocial graph at each social networking site. Such user associations maybe defined on a user-to-user basis, or as a group of users associatedthrough membership within a group. As used herein, “contacts” refer toother users that a user is associated with, at one or more socialnetworking sites.

A user may create “social groups” (e.g., social circles, lists or setsof social networking contacts) including one or more contacts toorganize his/her associations. The social groups may be additionallyused to control distribution of messages and content to contacts of theuser. For example, “social circles” may be categories to which a usercan assign their social networking contacts and better control thedistribution and visibility of social networking messages as well asother multimedia content (e.g., documents, and other collaborationobjects). In accordance with some embodiments, a social circle isprovided as a data set defining a collection of contacts that may, forexample, be associated with one another. As used herein, a social circlecan be described from the perspective of an individual that is thecenter of a particular collection of socially interconnected people, orfrom the aggregate perspective of a collection of sociallyinterconnected people. In some examples, a social circle can havenarrowly defined boundaries, all of the members of the social circle maybe familiar with one another, and permission may be required for amember to join a social circle. In accordance with the subjectdisclosure, a user of an electronic device may define a social circle,and the social circle, as a data set defining a collection of contacts,may reflect a real-life social circle of the user. In some embodiments,social circle may be asynchronous. For example, a first user may definea social circle of relatives that includes the accounts of her cousinsand siblings. One of the siblings may not have defined such a circle,and may not even have the first user in any circle.

For example, a user of an electronic device may have different groups offriends, coworkers, and family, and there may be some overlap amongthose groups (e.g., a coworker who is also considered to be a friend, afamily member who is also a coworker). Through the creation and use ofsocial groups (e.g., social circles), the user can organize andcategorize his/her contacts into various different groupings. A list orset of social networking contacts may include one or more social circlesof a member or contacts having similar personal characteristics (e.g.,an age range, a profession, a geographic location, a current or formereducational institution attended, a current or former employer, a hobby,or an athletic endeavor) to the member. The personal characteristics maybe entered by users of the social networking service upon registrationwith the social networking service or upon modification of theirpersonal data.

The phrase “order” as used herein encompasses its plain and ordinarymeaning, including, but not limited to a disposition of things (e.g.,items, representations of electronic data, etc.) following one another.One example of an ordered list or an ordered set is a list or set ofstudents in a class arranged alphabetically.

The phrase “ranking” as used herein encompasses its plain and ordinarymeaning including, but not limited to a position in an order. Forexample, in the English letters, arranged in alphabetical order, theletter “A” has a first ranking and the letter “B” has a second ranking.

The phrase “instructions” as used herein encompasses its plain andordinary meaning including, but not limited to directions or commandsconfigured to be executed by a computing device. Instructions may bewritten in binary code, in assembly language, or in a higher levelprogramming language, for example, JavaScript or C++.

The phrase “interfacing with” as used herein encompasses its plain andordinary meaning including, but not limited to modifying, using in acalculation, or using to generate an output. A computer program mayprocess data stored in a computer, for example, by modifying the data,making a calculation based on the data, or providing an output based onthe data.

The phrase “input” as used herein encompasses its plain and ordinarymeaning including, but not limited to data provided to a computer forprocessing. The input data may be manually entered by a user, receivedfrom another computer, or received from a local memory of the computer.

The phrase “output” as used herein encompasses its plain and ordinarymeaning including, but not limited to data provided by a computer aftercompleting a processing step or a computer program. The output data maybe provided to a user, e.g., via a visual display (e.g., a screen) orvia an audio-out (e.g., one or more speakers), transmitted to anothercomputer, or stored in the local memory of the computer.

The phrase “characteristics” as used herein encompasses its plain andordinary meaning including, but not limited to a trait pertaining to,constituting, or indicating a character or quality of a subject. Forexample, a characteristic of an audio file may include a topic discussedin the audio file (e.g., politics, religion, etc.), a tone used in theaudio file (e.g., happy, angry, etc.), or a personal characteristic of aspeaker of the audio file.

The phrase “personal characteristic” as used herein encompasses itsplain and ordinary meaning including, but not limited to a traitpertaining to, constituting, or indicating a character or quality of aperson. Example personal characteristics may include one or more of anage range, a profession, a geographic location, a current or formereducational institution attended, a current or former employer, a hobby,or an athletic endeavor.

The phrase “representation” as used herein encompasses its plain andordinary meaning including, but not limited to an expression ordesignation by a unit of electronic data. For example, a representationof an audio file may include, for example, a pointer or link to theaudio file, an image associated with the audio file, a string includingthe title or filename of the audio file, the audio file itself, etc.

The phrase “indication” as used herein encompasses its plain andordinary meaning including, but not limited to anything serving toindicate or point out the object of the indication. For example, anindication of an audio file may include, for example, a pointer or linkto the audio file, an image associated with the audio file, a stringincluding the title or filename of the audio file, the audio fileitself, etc.

II. Example Computer System for Providing an Application ProgrammingInterface for Interfacing with Audio Files Within a Social Network

FIG. 1 illustrates an example of a computer system 100 configured toprovide an application programming interface for interfacing with audiofiles within a social network.

As shown, the computer system 100 includes a database 102, a clientcomputing device 104, and a server 106. The database 102, clientcomputing device 104, and server 106 may communicate with one anothervia a network, e.g., the Internet or a cellular network, or via a directwired or wireless connection. While only of each of the database 102,client computing device 104, and server 106 are illustrated, the subjecttechnology may be implemented with one or more databases 102, clientcomputing devices 104, and servers 106. Furthermore, while threeseparate machines for each of the database 102, client computing device104, and server 106 are illustrated, a single machine may implement thefunctions of two or more of the database 102, client computing device104, and server 106.

The database 102 may be associated with one or more of a socialnetworking database, an audio file database, or a database forinformation related to audio files. The database 102 may store audiofiles or information related to audio files, e.g., images associatedwith audio files. The audio files may include, for example, recordingsof lectures, recordings of meetings, recordings of speeches, orpodcasts. The database 102 may also store information related to asocial network, for example, a set of members in a social network, a setof social contacts (e.g., a contact list) associated with each member,or a set of audio files (e.g., an audio file list) associated with eachmember. The set of social contacts may include a social network group,e.g., a social circle.

The client computing device 104 may be any computing device capable ofinteracting with a user, for example, by providing a social networkingapplication, or an audio file player/interface application to the user.One or more of the social networking application or the audio fileplayer/interface application may be implemented via a general purposeapplication, e.g., a web browser, or via a specialized application. Theclient computing device 104 may be a laptop computer, a desktopcomputer, a mobile phone, a personal digital assistant (PDA), a tabletcomputer, a netbook, a television with one or more processors embeddedtherein or coupled thereto, a physical machine, or a virtual machine,for example. The client computing device 104 may include one or more ofa keyboard, a mouse, a display, or a touch screen. Other devices couldimplement the functionalities of the client computing device 104 andother components may be included in the client computing device 104.

The server 106 may be implemented as a single machine with a singleprocessor, a single machine with multiple processors, or multiplemachines with multiple processors. As shown, the server 106 includes aprocessor 108, a network interface 110, and a memory 112. The processor108 is configured to execute computer instructions that are stored in amachine-readable medium, for example, the memory 112. The processor 108may be a central processing unit (CPU). The network interface 110 isconfigured to allow the server 106 to transmit and receive data in anetwork. The network interface 110 may include one or more networkinterface cards (NICs). The memory 112 may store data and instructions,which may be accessed or executed by the processor 108. As shown, thememory includes data structures representing one or more members 114.1-nof a social network, an instruction set 122, instructions associatedwith an audio player 124, and an audio file recommendation module 126.

Each of the data structures representing one or more members 114.1-n maybe associated with a member or a user of a social network. A member of asocial network may be a person, a business, an organization, or aproduct, e.g., a movie. The data structure associated with a member114.k may include a set of characteristics of the member (e.g., themember's hobbies, religion, geographic location, current or formeremployers, current or former educational institutions attended, etc.).The data structure associated with the member 114.k may also includedata posted or uploaded to the social network by the member, e.g.,images, videos, audio files, comments, or articles, or data posted oruploaded by other members that mention the member or are shared with themember.

Each member 114.k may be associated with a contact list 116.k. Thecontact list 116.k may include one or more social contacts of the member114.k. The contact list 116.k may include one or more social circles ofthe member 114.k. The contact list 116.k may include one or more membersof the social network having at least one personal characteristic commonto that of the member 114.k. Example personal characteristics mayinclude one or more of an age range, a profession, a geographiclocation, a current or former educational institution attended, acurrent or former employer, a hobby, or an athletic endeavor. Thecontact list 116.k may be an ordered list of social contacts, where eachsocial contact has a ranking in the list, or an unordered list of socialcontacts, where at least one social contact lacks a ranking in the list.The ranking of the ordered list may be based on, for example, a rankingof one or more of the closeness of the social contacts to the member114.k, a closeness of a taste in audio files of the social contacts to ataste in audio files of the member 114.k, a closeness of audio listeninghabits (e.g., listens in the morning, listens while driving, etc.) ofthe social networking contacts to audio listening habits of the member114.k, or an alphabetical position of names of the social networkingcontacts. The closeness of a social networking contact in the contactlist 116.k to the member 114.k may be measured, for example, based oninteractions, e.g., chat sessions, posts, etc., within the socialnetworking service. The similarity of the social networking contact116.k to the member 114.k may be measured based on personalcharacteristics of the social networking contacts in the contact list116.k common to those of to the member 114.k. The closeness of the tastein audio files may be measured by comparing the audio file list 118.k ofthe member 114.k with an audio file list of the social networkingcontact.

In one example, the server 106 may initially receive (e.g., from thedatabase 102 or the client computing device 104) an unordered contactlist 116.k. The server 106 may order the contact list 116.k according toa ranking of the social networking contacts in the contact list 116.k.The ranking may be based on a closeness or a similarity of the socialnetworking contacts in the contact list 116.k to the member 114.k, acloseness or a similarity of a taste in audio files of the socialnetworking contacts in the contact list 116.k to a taste in audio filesof the member 114.k, or a closeness or a similarity of audio listeninghabits of the social networking contacts in the contact list 116.k toaudio listening habits of the member 114.k.

Each member 114.k may also be associated with an audio file list 118.k.The audio file list 118.k may include one or more audio files associatedwith the member. The audio files in the audio file list 118.k mayinclude one or more of recordings of lectures, recordings of meetings,recordings of speeches, podcasts, or other audio files. The audio filesin the audio file list of a member may be owned by the member orlicensed by the member. A member may have a license to listen to audiofiles in a shared directory of audio files, where the member haspermission to play audio files in the shared directory but not to modifyaudio files in the shared directory. Each audio file may be associatedwith a time or an activity during which the member may listen to theaudio file. Example times or activities include morning time, eveningtime, exercising, driving, or working. The audio file list 118.k may bean ordered list of audio files, where each audio file has a ranking inthe list, or an unordered list of audio files, where at least one audiofile lacks a ranking in the list. In one implementation, the server mayreceive (e.g., from the database 102 or client computing device 104) anunordered audio file list 118.k and order the audio file list 118.kbased on a ranking. The ranking of the ordered list of audio files maybe based on, for example, one or more of a preference for the audiofiles entered by the member 114.k, one or more characteristics (e.g.,politics, President Obama, religion, Catholicism, economics, technology,male speaker, female speaker, baby boomer speaker, senior citizenspeaker, speaker with British accent, etc.) associated with the audiofiles in the audio file list 118.k, or an alphabetical position of textmetadata of the audio files. The text metadata of an audio file mayinclude one or more of a title of the audio file, a title of a playlistassociated with the audio file, or a name of a speaker in the audiofile.

An audio file list 118.k associated with a member 114.k may correspondto an characteristics set 120.k. The characteristics set 120.k mayinclude characteristics (e.g., politics, President Obama, religion,Catholicism, economics, technology, etc.) associated with the audiofiles in the audio file list 118.k. An characteristic corresponding toan audio file may be discussed in the audio file. For example, a podcastthat discusses technology and economics may be associated with thecharacteristics “technology” and “economics.” The characteristics set120.k may correspond to an indication of frequency with which thecharacteristics in the characteristics set 120.k appear in the audiofile list 118.k. For example, if an audio file list 118.k includes tenaudio files with nine audio files concerning politics and on audio fileconcerning religion, the characteristic “politics” may be associatedwith a higher frequency than the characteristic “religion” in thecorresponding characteristics set 120.k. At least one characteristic inthe characteristics set 120.k may be associated with alikelihood-of-interest value by the entity corresponding to the member114.k. In the above example, “politics” may have a highlikelihood-of-interest for the member 114.k because the member 114.k hasa relatively large number of audio files concerning “politics.” Anothercharacteristic, e.g., “travel,” may have a low likelihood-of-interestfor the member 114.k because the member 114.k does not have any audiofiles related to travel.

As illustrated, the memory 112 of the server 106 also includes aninstruction set 122. The instruction set may include instructionsconfigured to be implemented with the contact list 116.k and the audiofile list 118.k of a member 114.k. The instruction set 122 may includeinstructions for interfacing with the contact list 116.k or audio filelist 118.k of the member 114.k to generate an output. The output mayinclude an audio or visual representation of all or a portion of theaudio file list 118.k or the contact list 116.k, a modification of theaudio file list 118.k, or a modification of the contact list 116.k. Theserver 106 may be configured to interact with the contact list 116.k andthe audio file list 118.k of the member 114.k according to theinstruction set 122. The instruction set 122 may be written inconjunction with an application programming interface (API) forinterfacing with members 114.1-n, contact lists 116.1-n, and audio filelists 118.1-n. In one example, the instructions may be provided by aprogrammer and implemented in conjunction with the API. The instructionsmay also be written in a programming language, for example, JavaScript,Java, C, or C++.

The instruction set 122 may include one or more of instructions toprovide a representation of the list of audio files within a graphicalcomponent, where the graphical component includes a circle or anellipse, instructions to remove an audio file from the audio file list118.k, instructions to add an audio file to the audio file list 118.k ata specified position in the audio file list 118.k, instructions tocreate a new list of audio files associated with the member 114.k,instructions to play an initial audio file in the audio file list 118.k,instructions to play the initial audio file in the audio file list 118.kat an increased or decreased playback speed, instructions to playbackwards the initial audio file in the audio file list 118.k at anincreased or decreased playback speed, instructions to skip the initialaudio file in the audio file list 118.k, or instructions to adjust aquality or a volume of the playback of the audio files. The instructionset 122 may also include one or more of instructions to provide a subsetof the social networking contact list 116.k including contacts listeningto a specified audio file, instructions to provide a subset of thesocial networking contact list 116.k including contacts recommending aspecified audio file, instructions to provide a subset of the socialnetworking contact list 116.k including contacts recommending aspecified collection of audio files, or instructions to provide a subsetof the social networking contact list 116.k including contactsrecommending the list of audio files. The instruction set 122 may alsoinclude one or more of instructions to associate each audio file in asubset of the audio file list 118.k with a characteristic, instructionsto create a new list of audio files based on audio files in the audiofile list 118.k that are associated with a specific characteristic,instructions to determine a taste for the specific characteristic of themember 114.k of the social networking service based on audio files inthe audio files list 118.k that are associated with the specificcharacteristic, instructions to suggest new audio files to add to theaudio file list 118.k based on the specified characteristic,instructions to suggest new audio files to add to the audio file list118.k based on the specified characteristic and the ordered list ofsocial networking contacts, or instructions to add suggested audio filesto the audio file list 118.k. Other instructions may also be included inthe instruction set 122.

All or a portion of the instructions in the instruction set 122 may beassociated with an audio player 124. Specifically, the instructions inthe instruction set 122 that involve interfacing with an audio file list118.k may be associated with the audio player 124. The audio player maybe configured to play audio files, e.g., via a client computing device(e.g., client computing device 104) including an audio output (e.g., aspeaker). The audio player 124 may be configured to present a graphicaluser interface on a the client computing device. The graphical userinterface associated with the audio player 124 may be chromeless,meaning that the graphical user interface may lack control buttons(e.g., a play button, a pause button, a rewind button, a fast forwardbutton, etc.). Alternatively, the graphical user interface associatedwith the audio player 124 may include a play button or a pause buttonconfigured to be operated by a user of the client computing device. Thegraphical user interface associated with the audio player 124 may alsoinclude a rewind button or a fast forward button.

As shown, the memory 112 of the server 106 also includes an audio filerecommendation module 126. In one implementation, the audio filerecommendation module 126 may be included within the instruction set122. Alternatively, the audio file recommendation module 126 may be aseparate and distinct module from the instruction set 122. The audiofile recommendation module 126 may include instructions for receiving arepresentation of a first set of audio files (e.g., audio file list118.k) associated with the member (e.g., member 114.k). The audio filerecommendation module 126 may also include instructions for receiving aset of social networking contacts (e.g., contact list 116.k) associatedwith the member. The audio file recommendation module 126 may alsoinclude instructions for receiving a representation of one or moresecond sets of audio files, wherein each second set of audio files isassociated with at least one social networking contact in the set ofsocial networking contacts associated with the member (e.g., if member114.k has a social networking contact, e.g., member 114.j, the audiofile list 118.j associated with member 114.j may be included in thesecond set of audio files). The audio file recommendation module 126 mayalso include instructions for determining a first set of characteristics(e.g., characteristics set 120.k) based on the representation of thefirst set of audio files (e.g., audio file list 118.k). The audio filerecommendation module 126 may also include instructions for determininga second set of characteristics (e.g. characteristics set 120.j) basedon the representation of the one or more second sets of audio files(e.g., audio file list 118.j). The audio file recommendation module 126may also include instructions for generating a recommendation for atleast one new audio file based on the first set of characteristics andthe second set of characteristics, wherein the at least one new audiofile is not in the first set of audio files. The audio filerecommendation module 126 may include instructions for providing anindication of the recommendation for the at least one new audio file.The indication of the recommendation for the at least one new audio filemay include text or an image associated with the at least one new audiofile.

III. Example Process for Providing an Application Programming Interfacefor Interfacing with Audio Files Within a Social Network

FIG. 2 illustrates an example process 200 by which an applicationprogramming interface for interfacing with audio files within a socialnetwork may be provided.

The process 200 begins at block 210, where the server receives a list ofsocial networking contacts associated with a member of a socialnetworking service. The list may be an ordered list arranged accordingto a ranking of the social networking contacts. Alternatively, the listmay be unordered. The server may order the list according to a rankingof the social networking contacts after receiving the list. The rankingof the list of social networking contacts associated with the member maybe based on closeness or similarity to the member. The closeness of asocial networking contact to the member may be measured based oninteractions (e.g., chat sessions, messages, posts to feeds, in-personmeetings, etc.) between the member and the social networking contact.The similarity of a social networking contact to a member may bedetermined based on the personal characteristics (e.g., age range,religion, geographic location, hobbies, current or former educationalinstitution attended, current or former employer, etc.) of the socialnetworking contact and the personal characteristics of the member.

In block 220, the server receives a list of audio files associated withthe member of the social networking service. The list of audio files mayinclude, for example, recordings of lectures, recordings of meetings,recordings of speeches, or podcasts. The list of audio files may includeonly metadata (e.g., title, speaker, date, etc.) about the audio files,and may or may not include the audio files themselves. The list of audiofiles may be an ordered list of audio files based on a ranking. Theranking may be based on a preference for the audio files of the member,which may be determined automatically based on the listening habits ofthe member or entered by the member, characteristics of the audio files(e.g., travel, technology, male speaker, female speaker, AfricanAmerican speaker, speaker with French accent, etc.), or an alphabeticalposition of text metadata (e.g., title) of the audio files. In oneexample, the server may receive an unordered list of audio files and theserver may automatically order the list of audio files based on aranking.

In block 230, the server receives a set of instructions. The set ofinstructions may be configured to be implemented with the list of socialnetworking contacts and the list of audio files. For example, theinstructions may include software code for providing an audio or visualoutput associated with the list of social networking contacts or thelist of audio files. The instructions may include software code formodifying the list of social networking contacts or the list of audiofiles.

In block 240, the server processes the list of social networkingcontacts or the list of audio files according to the set of instructionsto modify the list of audio files or the list of social networkingcontacts, or to provide data associated with the list of audio files orthe list of social networking contacts. The server may process both thelist of social networking contacts and the list of audio filessimultaneously. Alternatively, the server may process one of the list ofaudio files or the list of social networking contacts. The data that isprovided may be specified within the set of instructions. For example,the data that is provided may include an audio or visual representationof the list of audio files or the list of social networking contacts ora modification of the list of social network contacts or the list ofaudio files. After block 240, the process 200 ends.

In one example, after block 240, an image or text associated with one ormore audio files may be provided for display. Alternatively, one or moreof the audio files may be provided for playing or added to a playlistincluding audio files to be played. The text, images, or audio data maybe displayed or played via a client computing device (e.g., clientcomputing device 104).

IV. Example Process for Recommending a New Audio File to a Member of aSocial Network

FIG. 3 illustrates an example process 300 by which a new audio file maybe recommended to a member of a social network. In one implementation,the process may be implemented via instructions provided to the serveraccording to the process 200 of FIG. 2. Alternatively, the process maybe implemented via instructions provided according to any other knownprocess for providing or storing instructions.

The process 300 begins at block 310, the server receives arepresentation of a first set of audio files associated with a member ofa social network (e.g., audio file list 118.k of member 114.k). Theaudio files may include, for example, recordings of lectures, recordingsof meetings, recordings of speeches, or podcasts. The first set of audiofiles may not be ordered. Alternatively, the first set of audio filesmay be ordered based on an interest level in the audio files by themember or based on an alphabetical order of text metadata (e.g., titleor speaker name) of the audio files in the first set of audio files. Theinterest level of the member may be entered as input by the member ordetermined based on listening habits of the member. (E.g., a member maybe more interested in audio files to which he/she listens frequentlythan in audio files to which he/she listens rarely.) In one example, theserver may receive an unordered set of audio files associated with themember. The server may order the audio files automatically according toon any order described herein.

In block 320, the server receives a set of social networking contactsassociated with the member (e.g., contact list 116.k of member 114.k).The set of social networking contacts associated with the member mayinclude one or more social circles associated with the member. The setof social networking contacts associated with the member may includeusers of the social network having at least one personal characteristiccommon to the member. Example personal characteristics may include oneor more of an age range, a profession, a geographic location, a currentor former educational institution attended, a current or formeremployer, a hobby, or an athletic endeavor.

The set of social networking contacts may not be ordered. Alternatively,the set of social networking contacts may be ordered. The order of theset of social networking contacts may be based on the closeness of thesocial networking contacts to the member. The closeness can be enteredas input by the member or determined automatically based on interactionsbetween the member and the social networking contacts. Interactions mayinclude chat sessions, messages, posts to feeds, views of profiles,in-person interactions, common calendar events, etc. The order of theset of social networking contacts may be based on a closeness of a tastein audio files of the social networking contacts to a taste in audiofiles of the member. The closeness of the taste in audio files may beentered by the member or the social networking contact. Alternatively,the closeness of the taste in audio files may be determinedautomatically based on the sets of audio files associated with themember or the social networking contact. The order of the set of socialnetworking contacts may be based on a closeness of audio listeninghabits of the social networking contacts to the audio listening habitsof the member. Example audio listening habits include listens in themorning, listens while driving, etc. The closeness of the taste in audiolistening habits may be entered by the member or the social networkingcontact. Alternatively, the taste in audio listening habits may bedetermined automatically by tracking the time when the members and thecontacts listen to audio files and the activities in which they areengaged. However, a user of the social networking service may opt-out ofhaving his/her habits or activities tracked. In some embodiments, theuser may not have his/her habits or activities tracked unless he/shespecifically opts-into such data collection.

In block 330, the server receives a representation of one or more secondsets of audio files. Each second set of audio files may be associatedwith at least one social networking contact in the set of socialnetworking contacts associated with the member. For example, a secondset of audio files may include an audio file collection of an entity ina social circle of the member. (E.g., if member 114.j is within thecontact list 116.k of member 114.k, audio file list 118.j of member114.j may be included in second set of audio files.)

In block 340, the server determines a first set of characteristics basedon the representation of the first set of audio files. Characteristicsin the first set of characteristics may include characteristics of audiofiles in the first set of audio files. For example, the characteristicsmay include topics discussed within an audio file or personalcharacteristics of a speaker in the audio file. Example characteristicsmay include politics, President Obama, religion, Catholicism, economics,technology, travel, Mexico, restaurants, male speaker, female speaker,baby boomer speaker, senior citizen speaker, speaker with Britishaccent, speaker with foreign accent, single speaker, multiple speakers,Democrat speaker, Republican speaker, Green Party speaker, etc.

In block 350, the server determines a second set of characteristicsbased on the representation of the one or more second sets of audiofiles. Characteristics in the second set of characteristics may includecharacteristics of audio files in the second set of audio files. In oneexample, the server may determine a single second set ofcharacteristics. Alternatively, the server may determine multiple secondsets of characteristics, where each of the multiple second sets ofcharacteristics is associated with a social networking contact of themember.

At least one characteristic in the first set of characteristics or thesecond set of characteristics may be associated with alikelihood-of-interest by the member. For example, if a set of audiofiles of the member includes multiple audio files having thecharacteristics “Canada” and “German accent,” sets of audio files of thesocial contacts of the member also include multiple audio files havingthe characteristic “Canada” and “German accent,” the member may beassigned a high likelihood-of-interest for the characteristics “Canada”and “German accent.” In addition, if the sets of audio files of themember and the social contacts of the member contain few audio fileshaving the characteristic “technology,” the member may be assigned a lowlikelihood-of-interest for the characteristic “technology.” In oneexample, the first set of characteristics or the second set ofcharacteristics may include an order of characteristics. The order maybe based on the likelihood-of-interest in the characteristics by themember.

In block 360, the server generates a recommendation for at least one newaudio file based on the first set of characteristics and the second setof characteristics. The recommendation for the new audio file(s) mayalso be based on the likelihood of interest associated with acharacteristic in the first set of characteristics or the second set ofcharacteristics. The new audio file(s) may not be in the first set ofaudio files. The new audio file may be included in one of the secondsets of audio files. Alternatively, the new audio file may not beincluded in each and every one of the second sets of audio files. Therecommendation may include a suggestion that the user add the new audiofile(s) to the first set of audio files, e.g., by purchasing a licenseto the audio files or downloading the audio files.

In one implementation, the recommendation for at least one new audiofile may include an ordered list of multiple new audio files. The orderof the ordered list of multiple new audio files may be based on thelikelihood-of-interest of the member in the characteristics of the newaudio files.

In block 370, the server provides an indication of the recommendationfor the new audio file(s). The indication of the recommendation mayinclude visual data or audio data and may be presented to a user via aclient computing device connected to the server via a network. In oneimplementation, the server may, after receiving permission or a paymentfrom the member, add the new audio file(s) to the first set of audiofiles associated with the member. After block 370, the process 300 ends.

V. Example System for Providing an Application Programming Interface forInterfacing with Audio Files Within a Social Network

FIG. 4 conceptually illustrates an electronic system 400 with which someimplementations of the subject technology are implemented. For example,one or more of the database 102, the client computing device 104, or theserver 106 may be implemented using the arrangement of the electronicsystem 400. The electronic system 400 can be a computer (e.g., a mobilephone, PDA), or any other sort of electronic device. Such an electronicsystem includes various types of computer readable media and interfacesfor various other types of computer readable media. Electronic system400 includes a bus 405, processing unit(s) 410, a system memory 415, aread-only memory 420, a permanent storage device 425, an input deviceinterface 430, an output device interface 435, and a network interface440.

The bus 405 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of theelectronic system 400. For instance, the bus 405 communicativelyconnects the processing unit(s) 410 with the read-only memory 420, thesystem memory 415, and the permanent storage device 425.

From these various memory units, the processing unit(s) 410 retrievesinstructions to execute and data to process in order to execute theprocesses of the subject technology. The processing unit(s) can be asingle processor or a multi-core processor in different implementations.

The read-only-memory (ROM) 420 stores static data and instructions thatare needed by the processing unit(s) 410 and other modules of theelectronic system. The permanent storage device 425, on the other hand,is a read-and-write memory device. This device is a non-volatile memoryunit that stores instructions and data even when the electronic system400 is off. Some implementations of the subject technology use amass-storage device (for example a magnetic or optical disk and itscorresponding disk drive) as the permanent storage device 425.

Other implementations use a removable storage device (for example afloppy disk, flash drive, and its corresponding disk drive) as thepermanent storage device 425. Like the permanent storage device 425, thesystem memory 415 is a read-and-write memory device. However, unlikestorage device 425, the system memory 415 is a volatile read-and-writememory, such a random access memory. The system memory 415 stores someof the instructions and data that the processor needs at runtime. Insome implementations, the processes of the subject technology are storedin the system memory 415, the permanent storage device 425, or theread-only memory 420. For example, the various memory units includeinstructions for providing an application programming interface forinterfacing with audio files within a social network or for recommendinga new audio file to a member of a social network in accordance with someimplementations. From these various memory units, the processing unit(s)410 retrieves instructions to execute and data to process in order toexecute the processes of some implementations.

The bus 405 also connects to the input and output device interfaces 430and 435. The input device interface 430 enables the user to communicateinformation and select commands to the electronic system. Input devicesused with input device interface 430 include, for example, alphanumerickeyboards and pointing devices (also called “cursor control devices”).Output device interfaces 435 enables, for example, the display of imagesgenerated by the electronic system 400. Output devices used with outputdevice interface 435 include, for example, printers and display devices,for example cathode ray tubes (CRT) or liquid crystal displays (LCD).Some implementations include devices for example a touchscreen thatfunctions as both input and output devices.

Finally, as shown in FIG. 4, bus 405 also couples electronic system 400to a network (not shown) through a network interface 440. In thismanner, the electronic system 400 can be a part of a network ofcomputers (for example a local area network (“LAN”), a wide area network(“WAN”), or an Intranet, or a network of networks, for example theInternet. Any or all components of electronic system 400 can be used inconjunction with the subject technology.

The above-described features and applications can be implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as computerreadable medium). When these instructions are executed by one or moreprocessing unit(s) (e.g., one or more processors, cores of processors,or other processing units), they cause the processing unit(s) to performthe actions indicated in the instructions. Examples of computer readablemedia include, but are not limited to, CD-ROMs, flash drives, RAM chips,hard drives, EPROMs, etc. The computer readable media does not includecarrier waves and electronic signals passing wirelessly or over wiredconnections.

In this specification, the term “software” is meant to include firmwareresiding in read-only memory or applications stored in magnetic storageor flash storage, for example, a solid-state drive, which can be readinto memory for processing by a processor. Also, in someimplementations, multiple software technologies can be implemented assub-parts of a larger program while remaining distinct softwaretechnologies. In some implementations, multiple software technologiescan also be implemented as separate programs. Finally, any combinationof separate programs that together implement a software technologydescribed here is within the scope of the subject technology. In someimplementations, the software programs, when installed to operate on oneor more electronic systems, define one or more specific machineimplementations that execute and perform the operations of the softwareprograms.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

These functions described above can be implemented in digital electroniccircuitry, in computer software, firmware or hardware. The techniquescan be implemented using one or more computer program products.Programmable processors and computers can be included in or packaged asmobile devices. The processes and logic flows can be performed by one ormore programmable processors and by one or more programmable logiccircuitry. General and special purpose computing devices and storagedevices can be interconnected through communication networks.

Some implementations include electronic components, for examplemicroprocessors, storage and memory that store computer programinstructions in a machine-readable or computer-readable medium(alternatively referred to as computer-readable storage media,machine-readable media, or machine-readable storage media). Someexamples of such computer-readable media include RAM, ROM, read-onlycompact discs (CD-ROM), recordable compact discs (CD-R), rewritablecompact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM,dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g.,DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SDcards, micro-SD cards, etc.), magnetic or solid state hard drives,read-only and recordable Blu-Ray® discs, ultra density optical discs,any other optical or magnetic media, and floppy disks. Thecomputer-readable media can store a computer program that is executableby at least one processing unit and includes sets of instructions forperforming various operations. Examples of computer programs or computercode include machine code, for example is produced by a compiler, andfiles including higher-level code that are executed by a computer, anelectronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor ormulti-core processors that execute software, some implementations areperformed by one or more integrated circuits, for example applicationspecific integrated circuits (ASICs) or field programmable gate arrays(FPGAs). In some implementations, such integrated circuits executeinstructions that are stored on the circuit itself.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of the specification, the termsdisplay or displaying means displaying on an electronic device. As usedin this specification and any claims of this application, the terms“computer readable medium” and “computer readable media” are entirelyrestricted to tangible, physical objects that store information in aform that is readable by a computer. These terms exclude any wirelesssignals, wired download signals, and any other ephemeral signals.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

The subject matter described in this specification can be implemented ina computing system that includes a back end component, e.g., as a dataserver, or that includes a middleware component, e.g., an applicationserver, or that includes a front end component, e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the subject matter described inthis specification, or any combination of one or more such back end,middleware, or front end components. The components of the system can beinterconnected by any form or medium of digital data communication,e.g., a communication network. Examples of communication networksinclude a local area network (“LAN”) and a wide area network (“WAN”), aninter-network (e.g., the Internet), and peer-to-peer networks (e.g., adhoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someaspects of the disclosed subject matter, a server transmits data (e.g.,an HTML page) to a client device (e.g., for purposes of displaying datato and receiving user input from a user interacting with the clientdevice). Data generated at the client device (e.g., a result of the userinteraction) can be received from the client device at the server.

It is understood that any specific order or hierarchy of steps in theprocesses disclosed is an illustration of example approaches. Based upondesign preferences, it is understood that the specific order orhierarchy of steps in the processes may be rearranged, or that allillustrated steps be performed. Some of the steps may be performedsimultaneously. For example, in certain circumstances, multitasking andparallel processing may be advantageous. Moreover, the separation ofvarious system components illustrated above should not be understood asrequiring such separation, and it should be understood that thedescribed program components and systems can generally be integratedtogether in a single software product or packaged into multiple softwareproducts.

Various modifications to these aspects will be readily apparent, and thegeneric principles defined herein may be applied to other aspects. Thus,the claims are not intended to be limited to the aspects shown herein,but is to be accorded the full scope consistent with the languageclaims, where reference to an element in the singular is not intended tomean “one and only one” unless specifically so stated, but rather “oneor more.” Unless specifically stated otherwise, the term “some” refersto one or more. Pronouns in the masculine (e.g., his) include thefeminine and neuter gender (e.g., her and its) and vice versa. Headingsand subheadings, if any, are used for convenience only and do not limitthe subject technology.

A phrase, for example, an “aspect” does not imply that the aspect isessential to the subject technology or that the aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations. Aphrase, for example, an aspect may refer to one or more aspects and viceversa. A phrase, for example, a “configuration” does not imply that suchconfiguration is essential to the subject technology or that suchconfiguration applies to all configurations of the subject technology. Adisclosure relating to a configuration may apply to all configurations,or one or more configurations. A phrase, for example, a configurationmay refer to one or more configurations and vice versa.

What is claimed is:
 1. A method executed on one or more computingdevices for providing an application programming interface forinterfacing with audio files within a social networking service, themethod comprising: receiving, at the one or more computing devices, anordered list of social networking contacts associated with a member ofthe social networking service, wherein the ordered list of socialnetworking contacts is arranged according to a ranking of the socialnetworking contacts; receiving an ordered list of audio files associatedwith the member of the social networking service, wherein the orderedlist of audio files is arranged according to a ranking of the audiofiles; receiving a set of instructions, wherein the set of instructionsis configured to be implemented with the ordered list of socialnetworking contacts and the ordered list of audio files; and interfacingwith the ordered list of social networking contacts or the ordered listof audio files according to the set of instructions to modify theordered list of audio files, wherein the ranking of the ordered list ofsocial networking contacts associated with the member is based on acomparison of audio listening habits between the social networkingcontacts and the member, the audio listening habits comprising a type ofactivity performed while listening to a particular audio file, andwherein the ranking of the ordered list of audio files is based on oneor more characteristics of individuals providing vocal input in theaudio files.
 2. The method of claim 1, further comprising providing fordisplay one or more text items or one or more image items associatedwith one or more audio files referenced by the modified list of audiofiles.
 3. The method of claim 1, further comprising providing forplaying one or more audio files referenced by the modified list of audiofiles.
 4. The method of claim 1, wherein the set of instructionsincludes instructions to remove an audio file from the ordered list ofaudio files.
 5. The method of claim 1, wherein the set of instructionsincludes instructions to add an audio file to the ordered list of audiofiles at a specified position in the ordered list of audio files.
 6. Themethod of claim 1, wherein the set of instructions includes instructionsto provide a subset of the ordered list of social networking contactsincluding contacts listening to a specified audio file.
 7. The method ofclaim 1, wherein the set of instructions includes instructions toprovide a subset of the ordered list of social networking contactsincluding contacts recommending a specified audio file.
 8. The method ofclaim 1, wherein the set of instructions includes instructions toassociate each audio file in a subset of the ordered list of audio fileswith a characteristic.
 9. The method of claim 1, wherein the set ofinstructions includes instructions to create a new list of audio filesbased on audio files referenced by the ordered list of audio files thatare associated with a specific characteristic.
 10. The method of claim1, wherein the set of instructions includes instructions to determine ataste for a specific characteristic of the member of the socialnetworking service based on audio files referenced by the ordered listof audio files that are associated with the specific characteristic. 11.The method of claim 1, wherein the interfacing with the ordered list ofaudio files comprises playing one or more audio files referenced by theordered list of audio files via an audio player.
 12. The method of claim1, wherein the ordered list of social networking contacts comprise oneor more preset groups of the social networking contacts associated withthe member.
 13. The method of claim 1, wherein the ordered list ofsocial networking contacts associated with the member comprises users ofthe social networking service having at least one personalcharacteristic common to that of the member.
 14. The method of claim 13,wherein the at least one personal characteristic includes one or more ofan age range, a profession, a geographic location, a current or formereducational institution attended, a current or former employer, a hobby,or an athletic endeavor.
 15. The method of claim 1, wherein the rankingof the ordered list of social networking contacts associated with themember is based on one or more of a closeness or a similarity of thesocial networking contacts to the member.
 16. The method of claim 1,wherein the ranking of the ordered list of social networking contactsassociated with the member is based on a closeness or a similarity of ataste in audio files of the social networking contacts to a taste inaudio files of the member.
 17. The method of claim 1, wherein theranking of the ordered list of audio files is further based on one ormore of a preference for the audio files of the member and one or moretopics associated with the audio files in the ordered list of audiofiles.
 18. The method of claim 17, wherein text metadata of an audiofile within the ordered list of audio files comprises one or more of atitle of the audio file, a title of a playlist associated with the audiofile, or a name of a speaker in the audio file.
 19. A machine-readablemedium for providing an application programming interface forinterfacing with audio files within a social networking service, themachine-readable medium comprising instructions stored therein, whichwhen executed by one or more computing devices, cause the one or morecomputing devices to perform operations comprising: receiving an orderedlist of social networking contacts associated with a member of thesocial networking service, wherein the ordered list of social networkingcontacts is arranged according to a ranking of the social networkingcontacts; receiving an ordered list of audio files associated with themember of the social networking service, wherein the ordered list ofaudio files is arranged according to a ranking of the audio filesassociated with the member; receiving a set of instructions, wherein theset of instructions is configured to be implemented with the orderedlist of social networking contacts and the ordered list of audio files;and interfacing with ordered the list of social networking contacts orthe ordered list of audio files according to the set of instructions tomodify the ordered list of audio files, wherein the ranking of theordered list of social networking contacts associated with the member isbased on a comparison of audio listening habits between the socialnetworking contacts and the member, the audio listening habitscomprising a type of activity performed while listening to a particularaudio file, and wherein the ranking of the ordered list of audio filesis based on one or more characteristics of individuals providing vocalinput in the audio files.
 20. The machine-readable medium of claim 19,wherein the ordered list of social networking contacts comprises one ormore preset groups of the social networking contacts associated with themember.
 21. A system for providing an application programming interfacefor interfacing with audio files within a social networking service, thesystem comprising: one or more processors; and a memory comprisinginstructions stored therein, which when executed by the one or moreprocessors, cause the one or more processors to perform operationscomprising: receiving an ordered list of social networking contactsassociated with a member of the social networking service, wherein theordered list of social networking contacts is arranged according to aranking of the social networking contacts; receiving an ordered list ofaudio files associated with the member of the social networking service,wherein the ordered list of audio files is arranged according to aranking of the audio files; receiving a set of instructions, wherein theset of instructions is configured to be implemented with the orderedlist of social networking contacts and the list of audio files; andinterfacing with the list of social networking contacts or the orderedlist of audio files according to the set of instructions to modify thelist of audio files, wherein the ranking of the ordered list of socialnetworking contacts associated with the member is based on a comparisonof audio listening habits between the social networking contacts and themember, the audio listening habits comprising a type of activityperformed while listening to a particular audio file, and wherein theranking of the ordered list of audio files is based on one or morecharacteristics of individuals providing vocal input in the audio files.22. The system of claim 21, wherein the ordered list of socialnetworking contacts comprises an ordered list of social networkingcontacts.
 23. The system of claim 21, wherein the ranking of the socialnetworking contacts is based on one or more of a closeness or asimilarity of the social networking contacts to the member.
 24. Thesystem of claim 21, wherein the ranking of the social networkingcontacts is based on a closeness or a similarity of a taste in audiofiles of the social networking contacts to a taste in audio files of themember.
 25. The method of claim 1, wherein the type of activitycomprises exercising, driving or working.
 26. The method of claim 1,wherein the audio listening habits further comprise a frequency oflistening to the particular audio file.
 27. The method of claim 1,wherein the audio listening habits further comprise a time of day forlistening to audio content.
 28. The method of claim 1, wherein theranking of the social networking contacts is further based oninteractions between the member and each of the social networkingcontacts.